package com.fand.platform.userCenter.dao;

import java.util.List;
import java.util.Map;

import com.fand.dto.PaginationDto;
import com.fand.platform.userCenter.dto.DepartmentDto;
import com.fand.platform.userCenter.dto.DepartmentLoDto;
import com.fand.platform.userCenter.dto.DepartmentLaDto;
import com.fand.platform.userCenter.dto.DepartmentLaLoDto;
import com.fand.platform.userCenter.dto.DepartmentReDto;
import com.fand.platform.userCenter.dto.DepartmentReLoDto;
import com.fand.platform.userCenter.dto.DepartmentCuInEfDto;

/**
 * 部门
 *
 * @author yaoHT
 * 
 */
public interface DepartmentDao {
	String BEAN_ID = "com.fand.platform.userCenter.dao.DepartmentDao";

	/**
	 * 插入:部门
	 * 
	 * @param insertDepartment
	 *            部门对象
	 * 
	 * @param insertProperties
	 *            插入属性名集合
	 * 
	 * @return 影响行数
	 */
	int insertDepartmentBy1(DepartmentDto insertDepartment, String... insertProperties);

	/**
	 * 插入:部门
	 * 
	 * @param insertDepartment
	 *            部门对象
	 * 
	 * @return 影响行数
	 */
	int insertDepartmentBy1_1(DepartmentDto insertDepartment);

	/**
	 * 插入:部门
	 * 
	 * @param insertDepartment
	 *            部门对象
	 * 
	 * @return 影响行数
	 */
	int insertDepartmentBy2(DepartmentDto insertDepartment);
	
	/**
	 * 删除:部门
	 * 
	 * @param deleteDepartment
	 *            部门对象
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int deleteDepartmentBy1(DepartmentDto deleteDepartment, String... whereEqProperties);

	/**
	 * 删除:部门
	 * 
	 * @param deleteDepartment
	 *            部门对象
	 * 
	 * @return 影响行数
	 */
	int deleteDepartmentBy1_1(DepartmentDto deleteDepartment);
	
	/**
	 * 删除:部门
	 * 
	 * @param deleteDepartment
	 *            部门对象
	 * 
	 * @return 影响行数
	 */
	int deleteDepartmentByIds(DepartmentDto deleteDepartment);

	/**
	 * 更新:部门
	 * 
	 * @param updateDepartment
	 *            部门对象
	 * 
	 * @param updateProperties
	 *            更新的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int updateDepartmentBy1(DepartmentDto updateDepartment, String[] updateProperties, String... whereEqProperties);

	/**
	 * 更新:部门
	 * 
	 * @param updateDepartment
	 *            部门对象
	 * 
	 * @return 影响行数
	 */
	int updateDepartmentBy1_1(DepartmentDto updateDepartment);
	
	/**
	 * 更新:部门
	 * 
	 * @param updateDepartment
	 *            部门对象
	 * 
	 * @return 影响行数
	 */
	int updateDepartmentBy2(DepartmentDto updateDepartment);

	/**
	 * 查询:部门
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartment
	 *            部门对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentBy1ForObject(Class<R> requiredType, DepartmentDto selectDepartment, String objectId, String... whereEqProperties);

	/**
	 * 查询:部门
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartment
	 *            部门对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentBy1_1ForObject(Class<R> requiredType, DepartmentDto selectDepartment, String objectId);
	
	/**
	 * 查询:部门
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartment
	 *            部门对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentBy2ForObject(Class<R> requiredType, DepartmentDto selectDepartment, String objectId);
	
	/**
	 * 查询:部门
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartment
	 *            部门对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 部门对象集合
	 */
	<R> List<R> selectDepartmentBy1ForObjectList(Class<R> requiredType, DepartmentDto selectDepartment, String objectId, String... whereEqProperties);

	/**
	 * 查询:部门
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartment
	 *            部门对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 部门对象集合
	 */
	<R> List<R> selectDepartmentBy1_1ForObjectList(Class<R> requiredType, DepartmentDto selectDepartment, String objectId);
	
	/**
	 * 查询:部门
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartment
	 *            部门对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 部门对象集合
	 */
	<R> List<R> selectDepartmentBy2ForObjectList(Class<R> requiredType, DepartmentDto selectDepartment, String objectId);

	/**
	 * 查询:部门
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartment
	 *            部门对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentBy1ForMappedObject(Class<R> mappedClass, DepartmentDto selectDepartment, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:部门
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartment
	 *            部门对象
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentBy1_1ForMappedObject(Class<R> mappedClass, DepartmentDto selectDepartment);
	
	/**
	 * 查询:部门
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartment
	 *            部门对象
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentBy2ForMappedObject(Class<R> mappedClass, DepartmentDto selectDepartment);

	/**
	 * 查询:部门
	 * 
	 * @param selectDepartment
	 *            部门对象
	 * @return 返回数据
	 */
	int selectDepartmentByCodeNqIdForInteger(DepartmentDto selectDepartment);

	/**
	 * 查询:部门
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartment
	 *            部门对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 部门对象集合
	 */
	<R> List<R> selectDepartmentBy1ForMappedObjectList(Class<R> mappedClass, DepartmentDto selectDepartment, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:部门
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartment
	 *            部门对象
	 * 
	 * @return 部门对象集合
	 */
	<R> List<R> selectDepartmentBy1_1ForMappedObjectList(Class<R> mappedClass, DepartmentDto selectDepartment);

	/**
	 * 查询:部门
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartment
	 *            部门对象
	 * 
	 * @return 部门对象集合
	 */
	<R> List<R> selectDepartmentBy2ForMappedObjectList(Class<R> mappedClass, DepartmentDto selectDepartment);
	
	/**
	 * 分页:部门
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param paginationDepartment
	 *            部门对象
	 * 
	 * @return 部门分页对象
	 */
	<R> PaginationDto<R> paginationDepartmentBy1ForMappedObjectList(final Class<R> mappedClass,
			DepartmentDto paginationDepartment);
			
	/**
	 * 分页
	 * 
	 * @param paginationDepartment
	 *            部门对象
	 * 
	 * @return 部门分页对象
	 */
	PaginationDto<Map<String, Object>> paginationDepartmentBy1ForMapList(DepartmentDto paginationDepartment);

	/**
	 * 插入:部门日志
	 * 
	 * @param insertDepartmentLo
	 *            部门日志对象
	 * 
	 * @param insertProperties
	 *            插入属性名集合
	 * 
	 * @return 影响行数
	 */
	int insertDepartmentLoBy1(DepartmentLoDto insertDepartmentLo, String... insertProperties);
	
	/**
	 * 删除:部门日志
	 * 
	 * @param deleteDepartmentLo
	 *            部门日志对象
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int deleteDepartmentLoBy1(DepartmentLoDto deleteDepartmentLo, String... whereEqProperties);


	/**
	 * 更新:部门日志
	 * 
	 * @param updateDepartmentLo
	 *            部门日志对象
	 * 
	 * @param updateProperties
	 *            更新的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int updateDepartmentLoBy1(DepartmentLoDto updateDepartmentLo, String[] updateProperties, String... whereEqProperties);


	/**
	 * 查询:部门日志
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentLo
	 *            部门日志对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentLoBy1ForObject(Class<R> requiredType, DepartmentLoDto selectDepartmentLo, String objectId, String... whereEqProperties);
	
	/**
	 * 查询:部门日志
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentLo
	 *            部门日志对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 部门日志对象集合
	 */
	<R> List<R> selectDepartmentLoBy1ForObjectList(Class<R> requiredType, DepartmentLoDto selectDepartmentLo, String objectId, String... whereEqProperties);


	/**
	 * 查询:部门日志
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentLo
	 *            部门日志对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentLoBy1ForMappedObject(Class<R> mappedClass, DepartmentLoDto selectDepartmentLo, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:部门日志
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentLo
	 *            部门日志对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 部门日志对象集合
	 */
	<R> List<R> selectDepartmentLoBy1ForMappedObjectList(Class<R> mappedClass, DepartmentLoDto selectDepartmentLo, String[] selectProperties, String... whereEqProperties);

	/**
	 * 插入:部门与语言
	 * 
	 * @param insertDepartmentLa
	 *            部门与语言对象
	 * 
	 * @param insertProperties
	 *            插入属性名集合
	 * 
	 * @return 影响行数
	 */
	int insertDepartmentLaBy1(DepartmentLaDto insertDepartmentLa, String... insertProperties);

	/**
	 * 插入:部门与语言
	 * 
	 * @param insertDepartmentLa
	 *            部门与语言对象
	 * 
	 * @return 影响行数
	 */
	int insertDepartmentLaBy1_1(DepartmentLaDto insertDepartmentLa);

	/**
	 * 插入:部门与语言
	 * 
	 * @param insertDepartmentLa
	 *            部门与语言对象
	 * 
	 * @return 影响行数
	 */
	int insertDepartmentLaBy2(DepartmentLaDto insertDepartmentLa);
	
	/**
	 * 删除:部门与语言
	 * 
	 * @param deleteDepartmentLa
	 *            部门与语言对象
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int deleteDepartmentLaBy1(DepartmentLaDto deleteDepartmentLa, String... whereEqProperties);

	/**
	 * 删除:部门与语言
	 * 
	 * @param deleteDepartmentLa
	 *            部门与语言对象
	 * 
	 * @return 影响行数
	 */
	int deleteDepartmentLaBy1_1(DepartmentLaDto deleteDepartmentLa);
	
	/**
	 * 删除:部门与语言
	 * 
	 * @param deleteDepartmentLa
	 *            部门与语言对象
	 * 
	 * @return 影响行数
	 */
	int deleteDepartmentLaByIds(DepartmentLaDto deleteDepartmentLa);

	/**
	 * 更新:部门与语言
	 * 
	 * @param updateDepartmentLa
	 *            部门与语言对象
	 * 
	 * @param updateProperties
	 *            更新的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int updateDepartmentLaBy1(DepartmentLaDto updateDepartmentLa, String[] updateProperties, String... whereEqProperties);

	/**
	 * 更新:部门与语言
	 * 
	 * @param updateDepartmentLa
	 *            部门与语言对象
	 * 
	 * @return 影响行数
	 */
	int updateDepartmentLaBy1_1(DepartmentLaDto updateDepartmentLa);
	
	/**
	 * 更新:部门与语言
	 * 
	 * @param updateDepartmentLa
	 *            部门与语言对象
	 * 
	 * @return 影响行数
	 */
	int updateDepartmentLaBy2(DepartmentLaDto updateDepartmentLa);

	/**
	 * 查询:部门与语言
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentLa
	 *            部门与语言对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentLaBy1ForObject(Class<R> requiredType, DepartmentLaDto selectDepartmentLa, String objectId, String... whereEqProperties);

	/**
	 * 查询:部门与语言
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentLa
	 *            部门与语言对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentLaBy1_1ForObject(Class<R> requiredType, DepartmentLaDto selectDepartmentLa, String objectId);
	
	/**
	 * 查询:部门与语言
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentLa
	 *            部门与语言对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentLaBy2ForObject(Class<R> requiredType, DepartmentLaDto selectDepartmentLa, String objectId);
	
	/**
	 * 查询:部门与语言
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentLa
	 *            部门与语言对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 部门与语言对象集合
	 */
	<R> List<R> selectDepartmentLaBy1ForObjectList(Class<R> requiredType, DepartmentLaDto selectDepartmentLa, String objectId, String... whereEqProperties);

	/**
	 * 查询:部门与语言
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentLa
	 *            部门与语言对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 部门与语言对象集合
	 */
	<R> List<R> selectDepartmentLaBy1_1ForObjectList(Class<R> requiredType, DepartmentLaDto selectDepartmentLa, String objectId);
	
	/**
	 * 查询:部门与语言
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentLa
	 *            部门与语言对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 部门与语言对象集合
	 */
	<R> List<R> selectDepartmentLaBy2ForObjectList(Class<R> requiredType, DepartmentLaDto selectDepartmentLa, String objectId);

	/**
	 * 查询:部门与语言
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentLa
	 *            部门与语言对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentLaBy1ForMappedObject(Class<R> mappedClass, DepartmentLaDto selectDepartmentLa, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:部门与语言
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentLa
	 *            部门与语言对象
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentLaBy1_1ForMappedObject(Class<R> mappedClass, DepartmentLaDto selectDepartmentLa);
	
	/**
	 * 查询:部门与语言
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentLa
	 *            部门与语言对象
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentLaBy2ForMappedObject(Class<R> mappedClass, DepartmentLaDto selectDepartmentLa);

	/**
	 * 查询:部门与语言
	 * 
	 * @param selectDepartmentLa
	 *            部门与语言对象
	 * @return 返回数据
	 */
	int selectDepartmentLaByCodeNqIdForInteger(DepartmentLaDto selectDepartmentLa);

	/**
	 * 查询:部门与语言
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentLa
	 *            部门与语言对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 部门与语言对象集合
	 */
	<R> List<R> selectDepartmentLaBy1ForMappedObjectList(Class<R> mappedClass, DepartmentLaDto selectDepartmentLa, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:部门与语言
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentLa
	 *            部门与语言对象
	 * 
	 * @return 部门与语言对象集合
	 */
	<R> List<R> selectDepartmentLaBy1_1ForMappedObjectList(Class<R> mappedClass, DepartmentLaDto selectDepartmentLa);

	/**
	 * 查询:部门与语言
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentLa
	 *            部门与语言对象
	 * 
	 * @return 部门与语言对象集合
	 */
	<R> List<R> selectDepartmentLaBy2ForMappedObjectList(Class<R> mappedClass, DepartmentLaDto selectDepartmentLa);
	
	/**
	 * 分页:部门与语言
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param paginationDepartmentLa
	 *            部门与语言对象
	 * 
	 * @return 部门与语言分页对象
	 */
	<R> PaginationDto<R> paginationDepartmentLaBy1ForMappedObjectList(final Class<R> mappedClass,
			DepartmentLaDto paginationDepartmentLa);
			
	/**
	 * 分页
	 * 
	 * @param paginationDepartmentLa
	 *            部门与语言对象
	 * 
	 * @return 部门与语言分页对象
	 */
	PaginationDto<Map<String, Object>> paginationDepartmentLaBy1ForMapList(DepartmentLaDto paginationDepartmentLa);

	/**
	 * 插入:部门与语言日志
	 * 
	 * @param insertDepartmentLaLo
	 *            部门与语言日志对象
	 * 
	 * @param insertProperties
	 *            插入属性名集合
	 * 
	 * @return 影响行数
	 */
	int insertDepartmentLaLoBy1(DepartmentLaLoDto insertDepartmentLaLo, String... insertProperties);
	
	/**
	 * 删除:部门与语言日志
	 * 
	 * @param deleteDepartmentLaLo
	 *            部门与语言日志对象
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int deleteDepartmentLaLoBy1(DepartmentLaLoDto deleteDepartmentLaLo, String... whereEqProperties);


	/**
	 * 更新:部门与语言日志
	 * 
	 * @param updateDepartmentLaLo
	 *            部门与语言日志对象
	 * 
	 * @param updateProperties
	 *            更新的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int updateDepartmentLaLoBy1(DepartmentLaLoDto updateDepartmentLaLo, String[] updateProperties, String... whereEqProperties);


	/**
	 * 查询:部门与语言日志
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentLaLo
	 *            部门与语言日志对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentLaLoBy1ForObject(Class<R> requiredType, DepartmentLaLoDto selectDepartmentLaLo, String objectId, String... whereEqProperties);
	
	/**
	 * 查询:部门与语言日志
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentLaLo
	 *            部门与语言日志对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 部门与语言日志对象集合
	 */
	<R> List<R> selectDepartmentLaLoBy1ForObjectList(Class<R> requiredType, DepartmentLaLoDto selectDepartmentLaLo, String objectId, String... whereEqProperties);


	/**
	 * 查询:部门与语言日志
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentLaLo
	 *            部门与语言日志对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentLaLoBy1ForMappedObject(Class<R> mappedClass, DepartmentLaLoDto selectDepartmentLaLo, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:部门与语言日志
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentLaLo
	 *            部门与语言日志对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 部门与语言日志对象集合
	 */
	<R> List<R> selectDepartmentLaLoBy1ForMappedObjectList(Class<R> mappedClass, DepartmentLaLoDto selectDepartmentLaLo, String[] selectProperties, String... whereEqProperties);

	/**
	 * 插入:部门关系
	 * 
	 * @param insertDepartmentRe
	 *            部门关系对象
	 * 
	 * @param insertProperties
	 *            插入属性名集合
	 * 
	 * @return 影响行数
	 */
	int insertDepartmentReBy1(DepartmentReDto insertDepartmentRe, String... insertProperties);

	/**
	 * 插入:部门关系
	 * 
	 * @param insertDepartmentRe
	 *            部门关系对象
	 * 
	 * @return 影响行数
	 */
	int insertDepartmentReBy1_1(DepartmentReDto insertDepartmentRe);

	/**
	 * 插入:部门关系
	 * 
	 * @param insertDepartmentRe
	 *            部门关系对象
	 * 
	 * @return 影响行数
	 */
	int insertDepartmentReBy2(DepartmentReDto insertDepartmentRe);
	
	/**
	 * 删除:部门关系
	 * 
	 * @param deleteDepartmentRe
	 *            部门关系对象
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int deleteDepartmentReBy1(DepartmentReDto deleteDepartmentRe, String... whereEqProperties);

	/**
	 * 删除:部门关系
	 * 
	 * @param deleteDepartmentRe
	 *            部门关系对象
	 * 
	 * @return 影响行数
	 */
	int deleteDepartmentReBy1_1(DepartmentReDto deleteDepartmentRe);
	
	/**
	 * 删除:部门关系
	 * 
	 * @param deleteDepartmentRe
	 *            部门关系对象
	 * 
	 * @return 影响行数
	 */
	int deleteDepartmentReByIds(DepartmentReDto deleteDepartmentRe);

	/**
	 * 更新:部门关系
	 * 
	 * @param updateDepartmentRe
	 *            部门关系对象
	 * 
	 * @param updateProperties
	 *            更新的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int updateDepartmentReBy1(DepartmentReDto updateDepartmentRe, String[] updateProperties, String... whereEqProperties);

	/**
	 * 更新:部门关系
	 * 
	 * @param updateDepartmentRe
	 *            部门关系对象
	 * 
	 * @return 影响行数
	 */
	int updateDepartmentReBy1_1(DepartmentReDto updateDepartmentRe);
	
	/**
	 * 更新:部门关系
	 * 
	 * @param updateDepartmentRe
	 *            部门关系对象
	 * 
	 * @return 影响行数
	 */
	int updateDepartmentReBy2(DepartmentReDto updateDepartmentRe);

	/**
	 * 查询:部门关系
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentRe
	 *            部门关系对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentReBy1ForObject(Class<R> requiredType, DepartmentReDto selectDepartmentRe, String objectId, String... whereEqProperties);

	/**
	 * 查询:部门关系
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentRe
	 *            部门关系对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentReBy1_1ForObject(Class<R> requiredType, DepartmentReDto selectDepartmentRe, String objectId);
	
	/**
	 * 查询:部门关系
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentRe
	 *            部门关系对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentReBy2ForObject(Class<R> requiredType, DepartmentReDto selectDepartmentRe, String objectId);
	
	/**
	 * 查询:部门关系
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentRe
	 *            部门关系对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 部门关系对象集合
	 */
	<R> List<R> selectDepartmentReBy1ForObjectList(Class<R> requiredType, DepartmentReDto selectDepartmentRe, String objectId, String... whereEqProperties);

	/**
	 * 查询:部门关系
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentRe
	 *            部门关系对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 部门关系对象集合
	 */
	<R> List<R> selectDepartmentReBy1_1ForObjectList(Class<R> requiredType, DepartmentReDto selectDepartmentRe, String objectId);
	
	/**
	 * 查询:部门关系
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentRe
	 *            部门关系对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @return 部门关系对象集合
	 */
	<R> List<R> selectDepartmentReBy2ForObjectList(Class<R> requiredType, DepartmentReDto selectDepartmentRe, String objectId);

	/**
	 * 查询:部门关系
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentRe
	 *            部门关系对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentReBy1ForMappedObject(Class<R> mappedClass, DepartmentReDto selectDepartmentRe, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:部门关系
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentRe
	 *            部门关系对象
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentReBy1_1ForMappedObject(Class<R> mappedClass, DepartmentReDto selectDepartmentRe);
	
	/**
	 * 查询:部门关系
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentRe
	 *            部门关系对象
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentReBy2ForMappedObject(Class<R> mappedClass, DepartmentReDto selectDepartmentRe);

	/**
	 * 查询:部门关系
	 * 
	 * @param selectDepartmentRe
	 *            部门关系对象
	 * @return 返回数据
	 */
	int selectDepartmentReByCodeNqIdForInteger(DepartmentReDto selectDepartmentRe);

	/**
	 * 查询:部门关系
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentRe
	 *            部门关系对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 部门关系对象集合
	 */
	<R> List<R> selectDepartmentReBy1ForMappedObjectList(Class<R> mappedClass, DepartmentReDto selectDepartmentRe, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:部门关系
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentRe
	 *            部门关系对象
	 * 
	 * @return 部门关系对象集合
	 */
	<R> List<R> selectDepartmentReBy1_1ForMappedObjectList(Class<R> mappedClass, DepartmentReDto selectDepartmentRe);

	/**
	 * 查询:部门关系
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentRe
	 *            部门关系对象
	 * 
	 * @return 部门关系对象集合
	 */
	<R> List<R> selectDepartmentReBy2ForMappedObjectList(Class<R> mappedClass, DepartmentReDto selectDepartmentRe);
	
	/**
	 * 分页:部门关系
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param paginationDepartmentRe
	 *            部门关系对象
	 * 
	 * @return 部门关系分页对象
	 */
	<R> PaginationDto<R> paginationDepartmentReBy1ForMappedObjectList(final Class<R> mappedClass,
			DepartmentReDto paginationDepartmentRe);
			
	/**
	 * 分页
	 * 
	 * @param paginationDepartmentRe
	 *            部门关系对象
	 * 
	 * @return 部门关系分页对象
	 */
	PaginationDto<Map<String, Object>> paginationDepartmentReBy1ForMapList(DepartmentReDto paginationDepartmentRe);

	/**
	 * 插入:部门关系日志
	 * 
	 * @param insertDepartmentReLo
	 *            部门关系日志对象
	 * 
	 * @param insertProperties
	 *            插入属性名集合
	 * 
	 * @return 影响行数
	 */
	int insertDepartmentReLoBy1(DepartmentReLoDto insertDepartmentReLo, String... insertProperties);
	
	/**
	 * 删除:部门关系日志
	 * 
	 * @param deleteDepartmentReLo
	 *            部门关系日志对象
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int deleteDepartmentReLoBy1(DepartmentReLoDto deleteDepartmentReLo, String... whereEqProperties);


	/**
	 * 更新:部门关系日志
	 * 
	 * @param updateDepartmentReLo
	 *            部门关系日志对象
	 * 
	 * @param updateProperties
	 *            更新的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int updateDepartmentReLoBy1(DepartmentReLoDto updateDepartmentReLo, String[] updateProperties, String... whereEqProperties);


	/**
	 * 查询:部门关系日志
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentReLo
	 *            部门关系日志对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentReLoBy1ForObject(Class<R> requiredType, DepartmentReLoDto selectDepartmentReLo, String objectId, String... whereEqProperties);
	
	/**
	 * 查询:部门关系日志
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentReLo
	 *            部门关系日志对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 部门关系日志对象集合
	 */
	<R> List<R> selectDepartmentReLoBy1ForObjectList(Class<R> requiredType, DepartmentReLoDto selectDepartmentReLo, String objectId, String... whereEqProperties);


	/**
	 * 查询:部门关系日志
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentReLo
	 *            部门关系日志对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentReLoBy1ForMappedObject(Class<R> mappedClass, DepartmentReLoDto selectDepartmentReLo, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:部门关系日志
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentReLo
	 *            部门关系日志对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 部门关系日志对象集合
	 */
	<R> List<R> selectDepartmentReLoBy1ForMappedObjectList(Class<R> mappedClass, DepartmentReLoDto selectDepartmentReLo, String[] selectProperties, String... whereEqProperties);

	/**
	 * 插入:部门当前有效
	 * 
	 * @param insertDepartmentCuInEf
	 *            部门当前有效对象
	 * 
	 * @param insertProperties
	 *            插入属性名集合
	 * 
	 * @return 影响行数
	 */
	int insertDepartmentCuInEfBy1(DepartmentCuInEfDto insertDepartmentCuInEf, String... insertProperties);
	
	/**
	 * 删除:部门当前有效
	 * 
	 * @param deleteDepartmentCuInEf
	 *            部门当前有效对象
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int deleteDepartmentCuInEfBy1(DepartmentCuInEfDto deleteDepartmentCuInEf, String... whereEqProperties);


	/**
	 * 更新:部门当前有效
	 * 
	 * @param updateDepartmentCuInEf
	 *            部门当前有效对象
	 * 
	 * @param updateProperties
	 *            更新的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 影响行数
	 */
	int updateDepartmentCuInEfBy1(DepartmentCuInEfDto updateDepartmentCuInEf, String[] updateProperties, String... whereEqProperties);


	/**
	 * 查询:部门当前有效
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentCuInEf
	 *            部门当前有效对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentCuInEfBy1ForObject(Class<R> requiredType, DepartmentCuInEfDto selectDepartmentCuInEf, String objectId, String... whereEqProperties);
	
	/**
	 * 查询:部门当前有效
	 * 
	 * @param requiredType
	 *            返回类型
	 * 
	 * @param selectDepartmentCuInEf
	 *            部门当前有效对象
	 * 
	 * @param objectId
	 *            返回对象标识
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 部门当前有效对象集合
	 */
	<R> List<R> selectDepartmentCuInEfBy1ForObjectList(Class<R> requiredType, DepartmentCuInEfDto selectDepartmentCuInEf, String objectId, String... whereEqProperties);


	/**
	 * 查询:部门当前有效
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentCuInEf
	 *            部门当前有效对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 返回对象
	 */
	<R> R selectDepartmentCuInEfBy1ForMappedObject(Class<R> mappedClass, DepartmentCuInEfDto selectDepartmentCuInEf, String[] selectProperties, String... whereEqProperties);

	/**
	 * 查询:部门当前有效
	 * 
	 * @param mappedClass
	 *            返回类型
	 * 
	 * @param selectDepartmentCuInEf
	 *            部门当前有效对象
	 * 
	 * @param selectProperties
	 *            查询的属性名集合
	 * 
	 * @param whereEqProperties
	 *            条件为等于的属性名集合
	 * 
	 * @return 部门当前有效对象集合
	 */
	<R> List<R> selectDepartmentCuInEfBy1ForMappedObjectList(Class<R> mappedClass, DepartmentCuInEfDto selectDepartmentCuInEf, String[] selectProperties, String... whereEqProperties);
}